package com.xidian.zhiancloud.ticketTemplate.ticketContentRisk;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;

public class FireJson extends TemplateJson {

    public static JsonNode fire(){
        ObjectMapper mapper = new ObjectMapper();
        // 添加键值对。key是条目的名称，value也是HashMap类型的键值对
        HashMap<String, Object> t1 = new LinkedHashMap<>();
        // 规定：input_type中，0：键入；1：单选；2：多选；3.多选&键入；4.自动生成; 5.不填
        t1.put("work_level", getFiled("动火作业级别","int", 1, new String[]{"一级", "二级", "特殊"}));  // 动火作业级别
        // 申请单位id 和 人员id 选择时，不出现在参数三中
//        t1.put("organization_id", getFiled("申请单位", "int", 1, new String[]{}));          // 申请单位
//        t1.put("work_pass_num", getFiled("作业证编号", "string", 4, new String[]{}));         // 作业证编号
//        t1.put("work_content", getFiled("工作内容","string", 0, new String[]{}));          // 工作内容
//        t1.put("time_start_actual", getFiled("实际作业开始时间","string", 0, new String[]{}));     // 实际作业开始时间（**年**月**日**时**分）
//        t1.put("time_end_actual", getFiled("实际作业结束时间", "string", 0, new String[]{}));       // 实际作业结束时间
//        t1.put("principal_id", getFiled("动火作业负责人", "int", 1, new String[]{}));             // 动火作业负责人
//        t1.put("worker_id", getFiled("动火人","int", 1, new String[]{}));                      // 动火人
//        // 出现逻辑上的小表，但实际是写死的三个表项。这里先写一条。
//        t1.put("analysis_time", getFiled("动火分析时间", "string", 0, new String[]{}));       // 动火分析时间
//        t1.put("analysis_name", getFiled("分析点名称","string", 0, new String[]{}));         // 分析点名称（不认为是地点）
//        t1.put("analysis_data", getFiled("分析数据","string", 0, new String[]{}));           // 分析数据
//        t1.put("analyst_id", getFiled("分析人","string", 0, new String[]{}));               // 分析人
//        t1.put("other_ticket_url", getFiled("涉及的其他特殊作业","string", 0, new String[]{}));      // 涉及的其他特殊作业
//
//        /* 选项与签字url设置为一个class，即一个 arrayList<> + string成员变量 */
//        t1.put("is_multiple_unit", getFiled("是否涉及多家属地单位", "boolean", 1, new String[]{"是", "否"}));        // 是否涉及多家属地单位
        t1.put("hazard_identify1", getFiled("危害辨识1", "int", 2, new String[]{"爆炸", "着火", "灼伤", "中毒", "辐射", "触电", "窒息",
                "落物", "淹溺", "掩埋", "坠落", "噪声", " 机械伤害"}));     // 危害辨识1
//        t1.put("hazard_identify1_sign", getFiled("危害辨识1，所涉及的属地单位有关人员共同签字", "string", 0, new String[]{}));             // 危害辨识1，所涉及的属地单位有关人员共同签字
//        t1.put("hazard_identify2", getFiled("危害辨识2", "int", 2, new String[]{"爆炸", "着火", "灼伤", "中毒", "辐射", "触电", "窒息",
//                "落物", "淹溺", "掩埋", "坠落", "噪声", " 机械伤害"}));     // 危害辨识2
//        t1.put("hazard_identify2_sign", getFiled("危害辨识2，作业单位现场负责人签字", "string", 0, new String[]{}));             // 危害辨识2，作业单位现场负责人签字
//        t1.put("measure1_sign", getFiled("工艺负责人签字", "string", 0, new String[]{}));                     // 工艺负责人签字，不涉及的画"/"
//        t1.put("measure2_sign", getFiled("工艺负责人签字", "string", 0, new String[]{}));                     // 工艺负责人签字，不涉及的画"/"
//        t1.put("measure2_num", getFiled("盲板__块", "int", 1, new String[]{}));                              // 盲板__块
//        t1.put("measure3_sign", getFiled("工艺负责人签字", "string", 0, new String[]{}));                     // 工艺负责人签字，不涉及的画"/"

        // 添加键值对。key是条目的名称，value也是HashMap类型的键值对
        // 安全措施
        List<HashMap<String, Object>> t2 = new LinkedList<>();
        HashMap<String,Object> m1 = new LinkedHashMap<>();
        // input_type表示确认人签字
        m1.put("动火设备内部构件清理干净，蒸汽吹扫或水洗合格，达到用火条件。",getFiled("确认人","String",0,new String[]{}));

        HashMap<String,Object> m2 = new LinkedHashMap<>();
        m2.put("断开与动火设备相连接的所有管线，加盲板（ ）块。",getFiled("确认人","String",0,new String[]{}));

        HashMap<String,Object> m3 = new LinkedHashMap<>();
        m3.put("罐区内动火点同一围堰内和防火间距内的储罐不同时进行脱水作业，排凝等作业",getFiled("确认人","String",0,new String[]{}));
        HashMap<String,Object> m4 = new LinkedHashMap<>();
        m4.put("动火点10m范围内及动火点下部区域严禁同时进行可燃溶剂清洗和喷漆等作业。在受限空间内进行动火作业、临时用电作业时，不得同时进行刷漆、喷漆作业或使用可燃溶剂清洗等其他可能散发易燃气体、可燃液体的作业",getFiled("确认人","String",0,new String[]{}));
        HashMap<String,Object> m5 = new LinkedHashMap<>();
        m5.put("动火点周围的下水井、地漏、地沟、电缆沟等已清除易燃物，并已采取覆盖、铺沙、水封等手段进行隔离",getFiled("确认人","String",0,new String[]{}));
        HashMap<String,Object> m6 = new LinkedHashMap<>();
        m6.put("动火点周围易燃物已清除",getFiled("确认人","String",0,new String[]{}));
        HashMap<String,Object> m7 = new LinkedHashMap<>();
        m7.put("距动火点30m内严禁排放可燃气体，15m内严禁排放各类可燃液体",getFiled("确认人","String",0,new String[]{}));
        HashMap<String,Object> m8 = new LinkedHashMap<>();
        m8.put("电焊回路线已接在焊件上，把线未穿过下水井或其它设备搭接",getFiled("确认人","String",0,new String[]{}));
        HashMap<String,Object> m9 = new LinkedHashMap<>();
        m9.put("高处作业已采取防火花飞溅措施",getFiled("确认人","String",0,new String[]{}));
        HashMap<String,Object> m10 = new LinkedHashMap<>();
        m10.put("乙炔气瓶（直立放置）、氧气瓶与火源间的距离大于10m，二者间距不应小于5m",getFiled("确认人","String",0,new String[]{}));

        HashMap<String,Object> m11 = new LinkedHashMap<>();
        m11.put("现场配备消防蒸汽带（  ）根，灭火器（ ）台，铁锹（ ）把，石棉布（ ）块",getFiled("确认人","String",0,new String[]{}));
        // 其他安全措施，由前端的patchById传入
//        HashMap<String,Object> m12 = new LinkedHashMap<>();
//        m12.put("其他安全措施：",getFiled("确认人","String",0,new String[]{}));

        t2.add(m1);
        t2.add(m2);
        t2.add(m3);
        t2.add(m4);
        t2.add(m5);
        t2.add(m6);
        t2.add(m7);
        t2.add(m8);
        t2.add(m9);
        t2.add(m10);
        t2.add(m11);
//        t2.add(m12);
        t1.put("safe_measure",getFiled("安全措施","string",0, t2));

//        t1.put("measure4_sign", getFiled("作业单位现场负责人签字", "string", 0, new String[]{}));                     // 作业单位现场负责人签字，不涉及的画"/"
//        t1.put("measure5_sign", getFiled("作业单位现场负责人签字", "string", 0, new String[]{}));                     // 作业单位现场负责人签字，不涉及的画"/"
//        t1.put("measure6_sign", getFiled("作业单位现场负责人签字", "string", 0, new String[]{}));                     // 作业单位现场负责人签字，不涉及的画"/"
//        t1.put("measure7_sign", getFiled("作业单位现场负责人签字", "string", 0, new String[]{}));                     // 作业单位现场负责人签字，不涉及的画"/"
//        t1.put("measure8_sign", getFiled("作业单位现场负责人签字", "string", 0, new String[]{}));                     // 作业单位现场负责人签字，不涉及的画"/"
//        t1.put("measure9_sign", getFiled("作业单位现场负责人签字", "string", 0, new String[]{}));                     // 作业单位现场负责人签字，不涉及的画"/"
//        t1.put("measure10_sign", getFiled("作业单位现场负责人签字","string", 0, new String[]{}));                     // 作业单位现场负责人签字，不涉及的画"/"
//        t1.put("measure11_sign", getFiled("作业单位现场负责人签字","string", 0, new String[]{}));                     // 作业单位现场负责人签字，不涉及的画"/"
//        t1.put("measure12_sign", getFiled("作业单位现场负责人签字","string", 0, new String[]{}));                     // 作业单位现场负责人签字，不涉及的画"/"
//        t1.put("measure12_content",getFiled("其他安全措施", "string",0,new String[]{}));                             // 其他安全措施
//        t1.put("measure12_creator_sign",getFiled("其他安全措施编制人签字", "string",0,new String[]{}));               // 其他安全措施编制人签字
//        t1.put("measure11_num1", getFiled("消防蒸汽带__根", "int", 1, new String[]{}));                               // 消防蒸汽带__根
//        t1.put("measure11_num2", getFiled("灭火器__台", "int", 1, new String[]{}));                                     // 灭火器__台
//        t1.put("measure11_num3", getFiled("铁锹__把", "int", 1, new String[]{}));                                      // 铁锹__把
//        t1.put("measure11_num4", getFiled("石棉布__块", "int", 1, new String[]{}));                                   // 石棉布__块
//        t1.put("apply_sign", getFiled("申请单位负责人签字", "string", 0, new String[]{}));                           // 申请单位负责人签字
//        // 没有解决是否涉及多家属地单位的问题
//        t1.put("trial_sign",getFiled("动火初审人签字", "string", 0, new String[]{}));                                  // 动火初审人签字
//        t1.put("local_supervision_sign",getFiled("属地监火人签字","string", 0, new String[]{}));                       // 属地监火人签字
//        t1.put("scene_sign", getFiled("作业单位现场负责人签字", "string", 0, new String[]{}));                         // 作业单位现场负责人签字
//        t1.put("security_sign",getFiled("属地单位安全员签字", "string", 0, new String[]{}));                             // 属地单位安全员签字
//        t1.put("import_sign",getFiled("归口管理单位现场负责人签字", "string",0,new String[]{}));                          // 归口管理单位现场负责人签字
//        t1.put("work_supervision_sign",getFiled("作业单位监火人签字", "string", 0, new String[]{}));                     // 作业单位监火人签字
//        t1.put("local_opinion", getFiled("生产（属地）单位意见", "string", 0, new String[]{}));                          // 生产（属地）单位意见
//        t1.put("local_sign", getFiled("生产单位签字", "string", 0, new String[]{}));                                      // 生产单位签字
//        t1.put("local_sign_time", getFiled("生产单位签字时间", "string", 0, new String[]{}));                           // 生产单位签字时间
//        t1.put("safe_opinion", getFiled("安全管理部门意见", "string", 0, new String[]{}));                              // 安全管理部门意见
//        t1.put("safe_sign", getFiled("安全管理部门签字", "string", 0, new String[]{}));                                    // 安全管理部门签字
//        t1.put("safe_sign_time", getFiled("安全管理部门签字时间", "string", 0, new String[]{}));                          // 安全管理部门签字时间        、
//        t1.put("monitor_opinion", getFiled("动火前，岗位当班班长验票", "string", 0, new String[]{}));                   // 动火前，岗位当班班长验票
//        t1.put("monitor_sign", getFiled("岗位当班班长签字", "string", 0, new String[]{}));                              // 岗位当班班长签字
//        t1.put("monitor_sign_time", getFiled("岗位当班班长签字时间", "string", 0, new String[]{}));                       // 岗位当班班长签字时间
//        t1.put("complete_opinion", getFiled("完工验收意见", "string", 0, new String[]{}));                              // 完工验收意见
//        t1.put("complete_sign", getFiled("完工验收签字", "string", 0, new String[]{}));                                 // 完工验收签字
//        t1.put("complete_sign_time", getFiled("完工验收签字时间", "string", 0, new String[]{}));                        // 完工验收签字时间

        JsonNode jsonNode = mapper.valueToTree(t1);
        System.out.println(jsonNode);
        return jsonNode;
    }
}
